#ifndef SERVER_H_
#define SERVER_H_

#include "../utils/Log.h"
#include "../utils/FuncionesComunes.h"
#include "../process/Semaforo.h"
#include "Mensaje.h"
#include "Cliente.h"
#include "Fifo.h"
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <map>
#include <wait.h>

#define ARCHIVO_SEMAFORO "../process/Semaforo.cpp"

using namespace std;

class Server {
	public:
		Server();
		void ejecutar();
		void activarModoDebug(bool activar);
		virtual ~Server();
	private:
		map<int, string[2]> fifos;
		Log log;
		Fifo canal;
		Semaforo sem;
		void registrarParticipante(string id);
		void eliminarParticipante(string id);
		void iniciarConversacion(Fifo &canal);
		void terminarConversacion(Fifo &canal);
		bool hayParticipantes();
		void enviarMensaje(string id);
};

#endif /* SERVER_H_ */
